package Leetcode.ArrayAndLinkedList.removeDuplicates26;

/**
 * 给定一个排序数组，你需要在 原地 删除重复出现的元素，使得每个元素只出现一次，返回移除后数组的新长度。
 * <p>
 * 不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
 * <p>
 * 给定数组 nums = [1,1,2]
 * 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
 */

/**
 * 该方法时间复杂度为O(n^2)
 * 不建议采取
 */
public class Solution {
    public int removeDuplicates(int[] nums) {
        int len = nums.length;
        int count = 0;
        while(count <= len) {
            for (int i = 1; i < len; i++) {
                if (nums[i] == nums[i - 1]) {
                    for (int j = i; j < nums.length - 1; j++) {
                        nums[j] = nums[j + 1];

                    }
                    len--;
                }

            }
            count++;
        }

        for (int i = 0; i < len; i++) {
            System.out.println(nums[i]);
        }
        return len;
    }

    public static void main(String[] args) {
        int nums[] = {0,0,0,0,0};
        Solution solution = new Solution();
        System.out.println('\n' + "len :" + solution.removeDuplicates(nums));
    }
}
